1. Technical Field of the Invention
The present invention relates generally to communication systems and, more particularly, to watermarking for scalable coded bitstreams.
2. Description of Related Art
Digital watermarking involves embedding information, known as a watermark, into digital content. Typically, the watermark is not detectable by users under normal operating conditions. Instead, the watermark is designed to be detected or extracted by specific post-processing activity, such as by use of a post-processing algorithm. Therefore, watermarking digital content allows source identification and/or tracks the distribution of the digital content. Accordingly, watermarking is a widely used tool for digital copy protection. The watermarking is applicable to both digital video and digital audio content.
Scalable coding is a type of coding that is designed for improved operation in the transfer of digital content. Scalable coding, such as scalable video coding, is adaptable to heterogeneous channel bandwidths and receiver capabilities. For example, instead of simulcasting video coding that uses separate independently coded video bitstreams to satisfy different channel and receiver capabilities, a scalable video coding scheme encodes bitstreams in a dependent manner to provide coding efficiency.
One example of a use of scalable coding is in the transmission of both low resolution and high resolution video content. A low resolution transmission may be video content destined for Standard Definition television (SDTV). A high resolution transmission may be video content destined for High Definition television (HDTV). When the type of a receiving device is known, the content provider may transmit the appropriate content, SDTV or HDTV video. However, for many applications, the content provider does not know the type of the receiving device, or the content provider provides content to a plurality of receiving devices, which may be of one type or the other, or both. Thus, both content types are transmitted.
When simulcast coding is used, the provider transmits both resolutions as two independent bitstreams. Thus, with the above SDTV/HDTV example, both SDTV and HDTV content are sent independently, and typically simultaneously. However, when scalable coding is used, the provider would transmit the two resolutions in a scalable technique. In scalable coded content transmission, the lower resolution content (SDTV) is still sent as an independent bitstream and decoded for SDTV viewing. However, the higher resolution content (HDTV) is not sent in full. Instead, a dependent bitstream is sent that includes enhancing content that builds on the SDTV content. The SDTV bitstream then operates as a base layer and the HDTV bitstream operates as an enhancement layer. In order to recover the full HDTV content, both the base SDTV layer and the enhancement layer are decoded. This concept may be further extended to additional higher resolution content with more layers. For example, for higher resolution than HDTV, a second dependent bitstream may be transmitted and combined with the other two bitstreams to recover this higher resolution digital content. The dependent bitstreams build on the content of the lower bitstream layer(s), so that typically only the higher enhancing data is sent in the dependent bitstreams, instead of all the content for a given enhancing feature. A significant advantage may be derived in bandwidth utilization with scalable coded content transmission.
A number of known standards specify or utilize scalable coding. For example, scalable video coding algorithms are associated with scalable profiles in MPEG-2 (Moving Picture Experts Group) and MPEG-4 video standards. More recently, a scalable extension to the H.264/MPEG-4 AVC (Advanced Video Coding) standard has defined a particular scalable video coding noted as SVC. Scalable video coding, whether generic scalable video coding or the specifically defined SVC under H.264/MPEG-4 AVC standard, have the ability to provide higher compression efficiency and lower complexity compared to independently transmitted bitstreams. The use of scalable coded bitstreams is not limited to video data. Scalable coded techniques may be used for audio data, or other data in general. Additionally, for many applications, but especially for video applications, the content is typically transmitted and/or stored in a compressed format to reduce bandwidth and/or storage requirements.
Although scalable coding allows for advantages in transmission, one problem that may develop is with the use of watermarks. Compressed domain watermarking has traditionally been designed for non-scalable coding schemes, such as the above described simulcasting of independent bitstreams. Since each bitstream is a single layer and independent from other bitstreams, each bitstream may be watermarked separately. Although some processing of inter-frame dependencies may be required to avoid visual artifacts caused by drift (e.g. difference between encoder/decoder prediction states) when watermarks are present, the effects of having a watermark present is minimal.
However, with scalable coded bitstreams, decoding of an enhancement layer depends not only on previously decoded picture states, but also on corresponding lower layers of the same picture. Modification of a lower layer bitstream in compressed domain may affect decoding of not only the future pictures in that layer, but also other layers as well. With scalable coding, the watermark should reside in the highest decoded layer. If the highest decoded layer and the watermarked layer are different, the watermark is circumvented. If the watermark resides in multiple layers, significant degradation and/or corruption of the signal may result. Further complicating the use of watermarks in scalable coded bitstream is that a decoder may select to decode more than one format. Additionally, the layer(s) selected for decoding at the receiver is generally not known at the transmitter. These characteristics, as well as others, make compressed domain watermarking for scalable coded bitstreams much more complicated than for non-scalable bitstreams.
Thus, for scalable coded bitstreams, there is a need to develop a technique to provide a watermark for the appropriately decoded layer without having the watermark circumvented.